home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / p4 / p4-1_2a.lha / p4-1.2a / usc / usc.h < prev   
C/C++ Source or Header  |  1992-10-19  |  3KB  |  144 lines

  1. /*
  2.  * USC.H  (Public header file for the Microsecond Clock package)
  3.  *     This header file has to be included by an application using
  4.  * the USC function calls.
  5.  *
  6.  * Written by:  Arun Nanda    (07/17/91)
  7.  * Modified by R. Butler
  8.  *
  9.  * The following machine-specific libraries need to be linked in
  10.  * with the application using the UST functions:
  11.  *
  12.  */
  13.  
  14. #ifndef _USC_DEFS_   /* takes care of multiple inclusion of this file */
  15. #define _USC_DEFS_
  16.  
  17.  
  18. #ifdef SUN_IPC
  19. #define SUN
  20. #endif
  21.  
  22. #ifdef HP_IPC
  23. #define HP
  24. #endif
  25.  
  26. #ifdef RS6000_IPC
  27. #define RS6000
  28. #endif
  29.  
  30. #ifdef IBM3090_IPC
  31. #define IBM3090
  32. #endif
  33.  
  34. #ifdef TITAN_IPC
  35. #define TITAN
  36. #endif
  37.  
  38. #ifdef SGI_IPC
  39. #define SGI
  40. #endif
  41.  
  42.  
  43.  
  44. /* ---------------------
  45.  Global declarations
  46. --------------------- */
  47.  
  48. typedef unsigned long usc_time_t;
  49.  
  50. #ifndef VOID
  51. #    if defined(BALANCE) || defined(FX8)
  52. #        define VOID int
  53. #    else
  54. #        define VOID void
  55. #    endif
  56. #endif
  57.  
  58. /* --------------------------------
  59.  Machine dependent declarations
  60. -------------------------------- */
  61.  
  62. #if defined(MULTIMAX)
  63.  
  64.      extern unsigned *usc_multimax_timer;
  65.  
  66. #endif
  67.  
  68.  
  69. #if defined(SYMMETRY) || defined(SYMMETRY_PTX)
  70.  
  71. #ifndef GETUSCLK
  72. #    include <usclkc.h>
  73. #endif
  74. #endif 
  75.  
  76. extern usc_time_t usc_MD_rollover_val;
  77.  
  78. /* -----------------------
  79.  user interface macros
  80. ----------------------- */
  81.  
  82. #if defined(MULTIMAX)
  83.  
  84. #    define usc_clock() ((usc_time_t) *usc_multimax_timer)
  85. #    define usc_rollover_val()  (usc_MD_rollover_val)
  86.  
  87. #else
  88.  
  89. #if defined(SYMMETRY) || defined(SYMMETRY_PTX)
  90.  
  91. #    define usc_clock() ((usc_time_t) getusclk())
  92. #    define usc_rollover_val()  (usc_MD_rollover_val)
  93.  
  94. #else
  95.  
  96. #if defined(TC_2000) || defined(TC_2000_TCMP)
  97.  
  98. #    define usc_clock() usc_MD_clock()
  99. #    define usc_rollover_val()  (usc_MD_rollover_val)
  100.  
  101. #else
  102.  
  103. #if defined (IPSC860)
  104.  
  105. #    define usc_clock() usc_MD_clock()
  106. #    define usc_rollover_val()  (usc_MD_rollover_val)
  107.  
  108. #else
  109.  
  110. #if defined(FX2800)  ||   defined(FX2800_SWITCH)
  111. #    define usc_clock() usc_MD_clock()
  112. #    define usc_rollover_val()  (usc_MD_rollover_val)
  113. #else 
  114.  
  115. #if defined(SUN) || defined(DEC5000) || defined(HP) \
  116.     || defined(IBM3090) || defined(RS6000) \
  117.     || defined(NEXT) || defined(TITAN) || defined(GP_1000) \
  118.     || defined(KSR) \
  119.     || defined(SGI) || defined(FX8)
  120.  
  121. #    define usc_clock() usc_MD_clock()
  122. #    define usc_rollover_val()  (usc_MD_rollover_val * 1000000 - 1)
  123.  
  124. #else
  125.  
  126. #    define usc_clock() 0
  127. #    define usc_rollover_val() 0
  128.  
  129. #endif
  130. #endif
  131. #endif
  132. #endif
  133. #endif
  134. #endif
  135.  
  136. /* ----------------------
  137.   function prototypes
  138. ---------------------- */
  139.  
  140. VOID usc_init();
  141. usc_time_t usc_MD_clock();
  142.  
  143. #endif
  144.